Digital sample rate conversion (SRC) is a technique to replace a system that includes a variety of master clock rates with a fixed clock rate system. Applications are abundant, e.g. acquisition (signal generator) systems with an oversampled ADC (DAC), followed (preceded) by a digital decimator (interpolator) to relieve the analog anti-aliasing (reconstruction) filter specifications. Integer factor SRC also appears in analysis (i.e. decimation) and synthesis (i.e. interpolation) filter banks.
To explain the problem tackled in the present invention a linear phase digital filter is assumed of order N, implying a finite impulse response h(k) of length N+1 (Eq. 1) with symmetric (Eq. 2) or anti-symmetric (Eq. 3) impulse response.
                              y          ⁡                      [            n            ]                          =                              ∑                          k              =              0                        N                    ⁢                                          ⁢                                    h              ⁡                              [                k                ]                                      ⁢                          x              ⁡                              [                                  n                  -                  k                                ]                                                                        (                  Eq          .                                          ⁢          1                )                                          h          ⁡                      [            k            ]                          =                                            h              ⁡                              [                                  N                  -                  k                                ]                                      ⁢                                                  ⁢            with            ⁢                                                  ⁢            k                    ∈                      0            ⁢                                                  ⁢            …            ⁢                                                  ⁢            N                                              (                  Eq          .                                          ⁢          2                )                                          h          ⁡                      [            k            ]                          =                                            -                              h                ⁡                                  [                                      N                    -                    k                                    ]                                                      ⁢                                                  ⁢            with            ⁢                                                  ⁢            k                    ∈                      0            ⁢                                                  ⁢            …            ⁢                                                  ⁢            N                                              (                  Eq          .                                          ⁢          3                )            Tƒis defined as the sample period of the output signal (for an interpolator) or the input signal (for a decimator). Thus, Tƒis the sample period of the signal with the fastest sample rate. For a single-rate filter Tƒis equal to the sample period of both input and output signals.#M is defined as the number of multiplications per output sample and per sample period Tƒ. A single rate realisation of Eq. 1 results in #M as given in Eq. 4. Also naive realisations of Eq. 1 in integer factor interpolators and decimators have that same #M as shown in Eq. 4.#M=N+1  (Eq. 4)In a single-rate system a linear phase FIR realisation can take advantage of its impulse response symmetry (Eq. 5) or anti-symmetry (Eq. 6); whereby └ ┘ denotes a truncation to the lower integer.
                                          y            ⁡                          [              n              ]                                =                                    ∑                              k                =                0                                            ⌊                                  N                  2                                ⌋                                      ⁢                                                  ⁢                                          h                ⁡                                  [                  k                  ]                                            ⁢                              (                                                      x                    ⁡                                          [                                              n                        -                        k                                            ]                                                        +                                      x                    ⁡                                          [                                              n                        +                        k                        -                        N                                            ]                                                                      )                            ⁢                                                          ⁢              for              ⁢                                                          ⁢              N              ⁢                                                          ⁢              odd                                      ⁢                                  ⁢                              y            ⁡                          [              n              ]                                =                                                    h                ⁡                                  [                                      ⌊                                          N                      2                                        ⌋                                    ]                                            ⁢                              x                ⁡                                  [                                      ⌊                                          N                      2                                        ⌋                                    ]                                                      +                                          ∑                                  k                  =                  0                                                                      ⌊                                          N                      2                                        ⌋                                    -                  1                                            ⁢                                                          ⁢                                                h                  ⁡                                      [                    k                    ]                                                  ⁢                                  (                                                            x                      ⁡                                              [                                                  n                          -                          k                                                ]                                                              +                                          x                      ⁡                                              [                                                  n                          +                          k                          -                          N                                                ]                                                                              )                                ⁢                                                                  ⁢                for                ⁢                                                                  ⁢                N                ⁢                                                                  ⁢                even                                                                        (                  Eq          .                                          ⁢          5                )                                                      y            ⁡                          [              n              ]                                =                                    ∑                              k                =                0                                            ⌊                                  N                  2                                ⌋                                      ⁢                                                  ⁢                                          h                ⁡                                  [                  k                  ]                                            ⁢                              (                                                      x                    ⁡                                          [                                              n                        -                        k                                            ]                                                        -                                      x                    ⁡                                          [                                              n                        +                        k                        -                        N                                            ]                                                                      )                            ⁢                                                          ⁢              for              ⁢                                                          ⁢              N              ⁢                                                          ⁢              odd                                      ⁢                                  ⁢                              y            ⁡                          [              n              ]                                =                                                    h                ⁡                                  [                                      ⌊                                          N                      2                                        ⌋                                    ]                                            ⁢                              x                ⁡                                  [                                      ⌊                                          N                      2                                        ⌋                                    ]                                                      +                                          ∑                                  k                  =                  0                                                                      ⌊                                          N                      2                                        ⌋                                    -                  1                                            ⁢                                                          ⁢                                                h                  ⁡                                      [                    k                    ]                                                  ⁢                                  (                                                            x                      ⁡                                              [                                                  n                          -                          k                                                ]                                                              -                                          x                      ⁡                                              [                                                  n                          +                          k                          -                          N                                                ]                                                                              )                                ⁢                                                                  ⁢                for                ⁢                                                                  ⁢                N                ⁢                                                                  ⁢                even                                                                        (                  Eq          .                                          ⁢          6                )            By means of Eq. 5 and Eq. 6 the number of multiplications per output sample #M is reduced from N+1 to
                              #          ⁢                                          ⁢          M                =                              ⌊                          N              2                        ⌋                    +          1                                    (                  Eq          .                                          ⁢          7                )            
Another generally known principle is multi-phase decomposition for sample rate conversion. Equation 8 defines the polyphase components hλ(n·LTƒ) for an L-fold decomposition of impulse response h(k·Tƒ).h′λ(n·LTƒ)=h((nL+λ)Tƒ)  (Eq. 8)                with λ=0 . . . L−1The filter h(k·Tƒ) has a frequency response to select the desired signal image (for an interpolator) or anti-aliasing band (for a decimator).The corresponding Z-transforms are combined in vector H(z) (Eq. 9).Hλ(z)=Z{(hλ(n·LTƒ)} H(z)=[H0(z) . . . H1(z) . . . HL−1(z)]T  (Eq. 9)The polyphase equation for an L-factor interpolator is shown in Eq. 10: Y(z)= H(z)·X(z)  (Eq. 10)whereby X(z) denotes the Z-transform of the input signal x(n·LT) and Y(z) the decomposition of the output signal y(k·Tƒ) as defined in Eq. 11.yλ(n·LTƒ)=y((nL+λ)Tƒ)Yλ(z)=Z{yλ(n·LTƒ)} Y(z)=[Y0(z) . . . Y1(z) . . . YL−1(z)]T  (Eq. 11)        with λ=0 . . . L−1For an L-factor decimator the polyphase equation is shown in equation 12.Y(z)= HT(z)· X(z)  (Eq. 12)y(n·LTƒ) hereby represents the output signal. The decomposition of the input signal x(k·Tƒ) is as defined in equation 13.xλ(n·LTƒ)=x((nL+λ)Tƒ)Xλ(z)=Z{xλ(n·LTƒ)} X(z)=[X0(z) . . . X1(z) . . . XL−1(z)]T  Eq. 13        with A=0 . . . L−1The efficiency of the polyphase realisations (as in Eqs. 10 and 12) lies in the fact that all filter operations are performed at the lowest rate, i.e. at 1/(LTƒ) instead of at 1/Tƒ. The average number of multiplications per output sample and per Tƒfor a polyphase interpolator (or decimator) is given in Eq. 14.        
                              #          ⁢                                          ⁢          M                =                              N            +            1                    L                                    (                  Eq          .                                          ⁢          14                )            
However, the h(kTƒ) (anti-)symmetry generally does not yield intra-phase (anti)-symmetry in most hλ(nLT) phases. The 2-fold decomposition for an even (N=8) order impulse response h(kTƒ) as shown in Eq. 15 is one example of an exception. Since h8=i=hi, both phases H0(z) and Hf(z) are symmetric.H0(z)=h0+h2z−1+h4z−2+h6z−3+h8z−4 H1(z)=h1+h3z−1+h5z−2+h7z−3  (Eq. 15)In Eq. 16 (where L=3 and N=11), H1(z) is symmetric for a symmetric H(z), but the other phases H0(z) and H2(z) are not symmetric.H0(z)=h0+h3z−1+h6z−2+h9z−3 H1(z)=h1+h4z−1+h7z−2+h10z−3 H2(z)=h2+h5z−1+h8z−2+h11z−3  (Eq. 16)However, in general, the multiplication reduction offered by filter response (anti-)symmetry, as in (Eq. 4) and (Eq. 5), is partially or completely lost with a polyphase realisation.